const baseURL = "https://pcapi-xiaotuxian-front-devtest.itheima.net";

/** 请求拦截器 */
const request = {
  invoke(args) {
    uni.showLoading({ title: "加载中" });
    if (!args.url.startsWith("http")) {
      args.url = baseURL + args.url;
    }
    const token = uni.getStorageSync('userToken')
    if ((args.header && args.header.Authorization) || !token) {
      args.header = {
        ...args.header, // 保留原本的 header
        "source-client": "miniapp", // 添加小程序端调用标识
      };
    } else {
      args.header = {
        ...args.header, // 保留原本的 header
        "source-client": "miniapp", // 添加小程序端调用标识
        Authorization: token
      };
    }
  },
  complete(res) {
    uni.hideLoading();
  },
};
/** 添加请求拦截器 */
uni.addInterceptor("request", request);
uni.addInterceptor("uploadFile", request);

/** 封装成 Promise 风格 */
export default function http(options) {
  return new Promise((resolve, reject) => {
    uni.request({
      ...options,
      success(res) {
        if (res.statusCode >= 200 && res.statusCode < 300) {
          resolve(res.data);
        } else {
          /** 401 跳转登录页面 */
          if (res.statusCode === 401) {
            uni.navigateTo({ url: '/pages/login/index' })
          }
          reject(res);
        }
      },
      fail(err) {
        reject(res);
      },
    });
  });
};